package com.dolphin.common.expr.emus;

import lombok.Getter;

import java.util.EnumSet;

/**
 * @author shida
 */
@Getter
public enum FunctionTypeEnum {

    toSubstring("字符串截取", Integer.valueOf(0)),
    searchStr("字符串查询", Integer.valueOf(1)),
    toReplace("字符串替换", Integer.valueOf(2)),
    toUpper("转换为大写", Integer.valueOf(3)),
    toLower("转换为小写", Integer.valueOf(4)),
    toTrim("去除两边的空白", Integer.valueOf(5)),
    calculatePosition("地理位置计算",Integer.valueOf(6)),
    diffDatetime("日期转换",Integer.valueOf(7)),
    dayDistance("时间天数距离",Integer.valueOf(8)),
    hourDistance("时间小时距离",Integer.valueOf(9)),
    minDistance("时间分钟距离",Integer.valueOf(10)),
    secondDistance("时间秒钟距离",Integer.valueOf(11)),
    idNbrToAge("身份证转年龄",Integer.valueOf(12)),
    idNbrToSex("身份证转性别",Integer.valueOf(13)),
    listValue("列表对应取值",Integer.valueOf(14)),
    yearDistance("事件年数距离",Integer.valueOf(15)),
    esVarAccess("ES变量取值",Integer.valueOf(16)),
    redis("加载redis中的变量",Integer.valueOf(17)),
    esById("根据_id加载ES中的变量",Integer.valueOf(18)),
    esBySearch("根据条件加载ES中的变量",Integer.valueOf(19)),
    getFormMap("从Map中获取值",Integer.valueOf(20)),
    httpGet("httpGet",Integer.valueOf(21)),
    httpPost("httpPost",Integer.valueOf(22)),
    esa("esa",Integer.valueOf(23)),
    getFromCustomTable("自定义表-根据主键取值",Integer.valueOf(24)),
    existInCustomTable("自定义表-主键是否存在",Integer.valueOf(25)),
    getCustomTableData("自定义表-获取表数据",Integer.valueOf(26)),
    getByIdFromDimensionTable("维度表-根据主键取值",Integer.valueOf(27)),
    searchOneFromDimensionTable("维度表-根据条件查询一条记录",Integer.valueOf(28)),
    buildMap("创建map",Integer.valueOf(29))
    ;

    private String description;
    private Integer id;

    FunctionTypeEnum( String description, Integer id) {
        this.id = id;
        this.description = description;
    }

    public boolean isCustomtableType(){
        return EnumSet.of(getFromCustomTable, getCustomTableData, existInCustomTable).contains(this);
    }
}
